Encoding:
(1=Fire,0=Salt)
00000: Silver-Gold
00001: Silver-Silver
00010: Silver-Copper
00011: Silver-Iron
00100: Silver-Tin
00101: Silver-Lead
00110: Gold-Gold
00111: Gold-Silver
01000: Gold-Copper
01001: Gold-Iron
01010: Gold-Tin
01011: Gold-Lead
01100: Lead-Gold
01101: Lead-Silver
01110: Lead-Copper
01111: Lead-Iron
10000: Tin-Gold
10001: Tin-Silver
10010: Tin-Copper
10011: Tin-Iron
10100: Tin-Tin
10101: Tin-Lead
10110: Iron-Gold
10111: Iron-Silver
11000: Iron-Copper
11001: Iron-Iron
11010: Iron-Tin
11011: Iron-Lead
11100: Copper-Gold
11101: Copper-Silver
11110: Copper-Copper
11111: Copper-Iron

Notes:
Amazingly managed to get some inspiration on the last day and shaved off 250 cycles!

At first, the natural encoding I thought of was to treat the input as a binary string and the output as its equivalent base-6 string. This led to a solve using a 6-atom counting stick, where the stick is translated by 1 step every count, and every 6 counts, the upper Ravari's wheel is rotated once to change the metal in the sixes digit of the output. However, in terms of optimization, the limiting factor in the weighted sum is most likely cycles, so any solution that does the counting faster will get a higher score. In particular, the last digit of the binary string involves 16 iterations of the counting step, which is slow, especially because the counting stick possibly needs to be translated back at every iteration. 

In the final version, I managed to bypass this problem somewhat by realizing that one of the input binary digits can be used to partition the output space into two halves, and the remaining 4 digits can be converted into base-6. A binary string of 4 digits only requires 3 different values in the sixes place of its base-6 representation, so the upper Ravari's wheel can be split into two sets of three metals. If the binary number is 0-16, the metals used for the sixes place are {silver, gold, lead} and if the binary number is 17-31, the metals used are {tin, iron, copper}.

Since any one-to-one mapping is allowed, any orientation of the Ravari's wheel should produce a valid encoding, since the solve is only dependent on the relative positions of the metals.

Thanks to Haxton for hosting this year's tournament, and see you guys in the weeklies!